/*
  规范commit日志
  https://commitlint.js.org
*/

const types = [
    'build', // 主要母的是修改项目构建系统（例如glup，webpack，rollup的配置等）的提交
    'ci', // 修改项目的持续集成流程（Kenkins、Travis等）的提交
    'chore', // 构建过程或辅助工具的变化
    'docs', // 文档提交（documents）
    'feat', // 新增功能（feature）
    'fix', // 修复 bug
    'pref', // 性能、体验相关的提交
    'refactor', // 代码重构
    'revert', // 回滚某个更早的提交
    'style', // 不影响程序逻辑的代码修改、主要是样式方面的优化、修改
    'test' // 测试相关的开发,
  ],
  typeEnum = {
    rules: {
      'type-enum': [2, 'always', types]
    },
    value: () => {
      return types;
    }
  };

module.exports = {
  extends: ['@commitlint/config-conventional'],
  /*
    Level [0..2]: 0 disables the rule. For 1 it will be considered a warning for 2 an error.
    https://commitlint.js.org/#/reference-rules
  */
  rules: {
    'type-enum': typeEnum.rules['type-enum'],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never']
  }
};
